Generally described, computing devices utilize a communication network, or a series of communication networks, to exchange data. Companies and organizations operate computer networks that interconnect a number of computing devices to support operations or provide services to third parties. The computing systems can be located in a single geographic location or located in multiple, distinct geographic locations (e.g., interconnected via private or public communication networks). Specifically, data centers or data processing centers, herein generally referred to as a “data center,” may include a number of interconnected computing systems to provide computing resources to users of the data center. The data centers may be private data centers operated on behalf of an organization or public data centers operated on behalf, or for the benefit of, the general public.
To facilitate increased utilization of data center resources, virtualization technologies may allow a single physical computing device to host one or more instances of virtual machines that appear and operate as independent computing devices to users of a data center. With virtualization, the single physical computing device can create, maintain, delete, or otherwise manage virtual machines in a dynamic matter. In turn, users can request computer resources from a data center, including single computing devices or a configuration of networked computing devices, and be provided with varying numbers of virtual machine resources.
In some scenarios, the physical computing devices or instances of a virtual machine may be configured according to a number of virtual machine instance types to provide specific functionality, often referred to as provisioning. For example, various computing devices may be associated with different combinations of operating systems or operating system configurations, hardware resources (actual or virtualized) and software applications to enable a computing device to provide different desired functionalities, or to provide similar functionalities more efficiently. These customized configurations are often provided within a device image, which a computing device may process in order to implement the desired software configuration and which can be standardized among a set of host computing devices.
Once the initial provisioning has occurred or while an initial provisioning is occurring, however, at least a portion of the machine image (e.g., the operating environment, software applications, or configurations) may need to be updated. It can be difficult for a service provider to identify all possible host computing devices that may require updating or to implement update information for a large set of host computing devices.